드디어 삼성 노트북 펜 15인치가 도착해서 세팅을 시작했다. 목표는 맥/리눅스에 근접할 정도로 편리한 개발 환경을 구축하는 것. 필요한 개발 환경은 대충 다음과 같은 것들이다.
- 파이썬
- node.js 기반의 프론트엔드 도구
- 안드로이드 앱
- electron 기반의 데스크탑 앱
- 윈도우 앱 automation (pywinauto 등으로)
- 머신러닝 (1~2년 후에 필요)
- iOS? (가능한 방법이 있을까?)
이 중에 가장 중요한 것은 물론 파이썬이다. 파이썬 개발 환경 구축을 위해서는 다음과 같은 것들이 필요하다.
- git, ssh
- python >= 3.6
- pycharm에서 project interpreter 지정이 가능할 것
- 파이썬 패키지에서 사용하는 네이티브 라이브러리들, postgresql이나 rabbitmq 등 posix 기반에서 개발된 소프트웨어들
- 좋은 커맨드라인 인터페이스
파이썬 다음으로 중요한 것은 node.js 기반 도구들인데, 파이썬과 요구사항은 비슷하다. 이런 요구사항을 소화하기 위해 가능한 옵션은 다음과 같은 것들이 있다.
- VirtualBox
- cygwin
- Windows 네이티브 + mingw 툴 + Visual Studio(C/C++ Compiler)
- Windows Subsystem for Linux
내가 이상적이라고 생각하는 방안은 cygwin이다. 하지만 cygwin은 최신 패키지 지원이 한 박자 늦다는 단점이 있다. VirtualBox는 아무리 좋아졌다고는 하나 여전히 느리고 스위칭이 불편하기 때문에 다른 모든 방법에 나쁘다고 판단할 경우에만 선택할 것이다. Windows 네이티브는 이미 여러 번 실험해봐서 가능하고 약간 불편하지만 그럭저럭 쓸만하다는 사실을 알고 있는 상태다. WSL은 bash.exe를 통해서만 리눅스 바이너리를 실행할 수 있다는 치명적인 단점(이것 때문에 PyCharm에서 직접 local interpreter로 지정할 수 없다)이 있지만 그 단점은 일부분 회피 가능하고, 윈도우 개발툴로 편집하고 리눅스 서버로 돌아가는 상황을 VirtualBox보다 좀더 매끄럽게 연출할 수 있다. 그래서 WSL 세팅을 먼저 시작해보았다.
Windows Subsystem for Linux